Emacs 對於編輯 Ruby 程式的功能
$gem install pry pry-doc
$gem install rufo
$gem install rubocop
編輯 rubocop 設定檔 ~/.rubocop.yml
AllCops:   
  Exclude:     
    - 'db/**/*'     
    - 'config/**/*'     
    - 'script/**/*'
(use-package ruby-mode
  :ensure t
  :mode ("\\.rb\\'" "Rakefile\\'" "Gemfile\\'" "Berksfile\\'" "Vagrantfile\\'")
  :config
  (use-package rvm
    :ensure t
    :config
    (rvm-use-default))
  (add-hook 'ruby-mode-hook (lambda ()
                              (add-to-list (make-local-variable 'company-backends)
                                           '(company-robe))))
  )
當檔案為 .rb, Rakefile, Gemfile... 時啟動 ruby-mode,當使用 rvm 時,內定使用 default version,加入 company-robe 為 company-backends
(use-package inf-ruby
  :ensure t
  :hook (ruby-mode . inf-ruby-minor-mode)
  :config
  )
(use-package ruby-electric
  :ensure t
  :hook (ruby-mode . ruby-electric-mode)
  )
inf-ruby 是可以在 Emacs 環境下,直譯 ruby 的 REPL (Read-Eval-Print-Loop) 的功能,內定使用 Ctrl-c Ctrl-s 啟動, ruby-electric 可以自動為函式的區塊補 end
(use-package robe
  :ensure t
  :hook (ruby-mode . robe-mode)
  :config
  (defadvice inf-ruby-console-auto (before activate-rvm-for-robe activate)
    (rvm-activate-corresponding-ruby))
  )
robe 的使用較為複雜,它會需要先啟動 inf-ruby,藉著它來解析本地的 module,如果有Gemfile, Rakefile 等專案資訊, robe 可以使用 inf-ruby-console-auto 來自動啟動,如果只是單一程式,則必須使用 Ctrl-c Ctrl-s 掀啟動 inf-ruby 再用 Meta-x robe-start 來啟動
(use-package rubocop
  :ensure t
  :hook (ruby-mode . rubocop-mode)
  )
  
(use-package rufo
  :ensure t
  :hook (ruby-mode . rufo-minor-mode)
  )
只要將這兩個次模式 hook 到 ruby-mode 即可
(use-package projectile-rails
 :ensure t
 :hook (projectile-mode . projectile-rails-on)
 )
projectile-rails 提供與先前介紹的 projectile 完美整合來編輯 Ruby on Rails 的專案
相關簡報:簡報
相關程式: Github 請下載到 ~/.emacs.d 下,啟動 Emacs 則會自動安裝套件
相關資訊; 請參考我的部落格